/**************************
 * \if English
 * @Date:2018.09.10
 * @Author:
 * @Brief:
 * @Detail:
 * @Editor:
 * @Brief:
 * \else
 *
 * @创建日期：2018年9月10日
 * @作者：hualei
 * @大概功能：MOVE_FREE 指令
**************************/
#ifndef MOVEFREEINSTRUCTION_H
#define MOVEFREEINSTRUCTION_H
#include "instructionEnum.h"
#include "globalDefine.h"

/**
 * @brief The MoveFreeInstruction class         从数据流中获取或写入指令参数
 */
class MoveFreeInstruction
{
public:
    MoveFreeInstruction();


public:
    INSTRUCTION_TYPE instructionType;              // 指令类型

    E_MOVE_FREE_MODE moveFreeMode;                 // 自由导航模式

    E_MOVE_FREE_POINTS_ARRY_TYPE pointArryType;    // 自由导航点位类型

    MOVE_FREE_POINT_TYPE pointSensorType;      // 自由导航指令点位模式

    QString trackMoveFileName;                      // 轨道运行文件路径

    quint32 velocityRatio;                          // 运行速度比

    quint32 pointsValue;                            // DP单点数值,点号

    quint32 registerPointsValue;                    // DPR寄存器点数值

    QString noteStr;                                // 注释

    int CNT_Value;                                  // 平滑数值  当CNT_Value=0:FINE

    ENUM_MOVE_FREE_MOVE_TRAJECTORY_TYPE moveFreeMoveTrajectoryType;   // 自由导航指令运行轨迹类型；  AUTO:自由轨迹  LINE:直线轨迹  SPLINE:样条轨迹

    bool isPositiveDirection; //正向、反向运行。华磊
    float allowAccuracy;//停车精度，单位米


    /**
     * @brief pointIndex            点位类型索引,v槽类型，QR类型，CU1类型
     */
    int pointIndex;

    /**
     * @brief laserTypeNum          激光类型编号
     */
    int laserTypeNum;

    /**
     * @brief jmpLabel              跳转标签
     */
    QString jmpLabel;

    /**
     * @brief jmpLabel              是否探测障碍物
     */
    bool isDetectBarrier; //是否探测障碍物
    int barrierRunMode;//探测方法
//    enum E_BARRIER_RUN_MODE
//    {
//        E_BARRIER_RUN_MODE_COMMON,
//        E_BARRIER_RUN_MODE_VMARK,//侧边距离紧贴
//        E_BARRIER_RUN_MODE_SHEFT,//使用料车
//    };
    /**
     * @brief pathControlStrategy 轨迹控制策略
     */
    E_PATH_CONTROL_STRATEGY    pathControlStrategy;
    int stationId;//站点号
    int pathId;//路径号
};

#endif // MOVEFREEINSTRUCTION_H
